%%
% 加*为了解内容
% 生成矩阵
% 直接法
    a = [1,2,3;4,5,6;7,8,9];
% 冒号一维矩阵 a = 开始：步长：结束，步长为1可省略
    b = 1:1:10; % 1,2,...10
    b = 1:10;%与上一个等价
 % 函数生成
              % linspace(开始，结束，元素个数)，等差生成指定元素数的一维矩阵，省略个数则生成100个
                      c = linspace(0,10,5);
              % 特殊矩阵
                      e = eye(4);% eye(维数)单位阵
                      z = zeros(1,4);  % zeros(维数)全零阵
                      o = ones(4,1);   % ones(维数)全1阵
                      r = rand(4);  % rand(维数)0~1分布随机阵
                      rn = randn(4);  % randn(维数)0均值Gaussian分布随机阵

%%
% 矩阵运算
       diag_a = diag(a,1);   % diag(行向量，主对角线上方第k条斜线)用行向量生成对角阵
       tril_a = tril(a,1);  % tril(矩阵，主对角线上方第k条斜线)生成矩阵的下三角阵，triu上三角阵
       % 加、减、乘、乘方
              a*a
       % 点运算
              % a.*b , a./b , a.\b , a.^b  对应元素的*,/,\,^运算
              a.*a
       % 逆矩阵
              pinv(a)% 伪逆矩阵，当a不是方阵，求广义逆矩阵；当a是可逆方阵，结果与逆矩阵相同
        % 特征值，特征向量
              [v,D] = eig(a); % 输出v为特征向量，D为特征值对角阵
       % *行列式
              det(a)
       % *秩
              rank(a)
       % *伴随
              compan(b)

%%
% 矩阵的修改
        %部分替换
              chg_a = a;
              chg_a(2,3) = 4;  % (行，列)元素替换
              chg_a(1,:) = [2,2,2];   % (行,:)替换行，为[]删除该行
              chg_a(:,1) = [];   % (:,列)替换列，为[]删除该列
        % 转置
              T_a = a';
        % 指定维数拼接
              c1_a = cat(1,a,a);   % 垂直拼接
              c2_a = cat(2,a,a);   % 水平拼接
        % *变维
              rs_a = reshape(a,1,9); % 元素个数不变，矩阵变为m*n

%%
% 信息获取
        % 矩阵的行列数
              [row_a, col_a] = size(a); % [行数，列数]
        % 行列中最大的
              len_a = length(a);
%%
% 多维数组
        % 创建
              % 直接法
                      mul_1(:,:,1) = [1,2,3;2,3,4];
                      mul_1(:,:,2) = [3,4,5;4,5,6];
              % *扩展法
                      mul_2 = [1,2,3;2,3,4];
                      mul_2(:,:,2) = [3,4,5;4,5,6]; % 若不赋值第一页，第一页全为0
              % cat法
                      mul_31 = [1,2,3;2,3,4];
                      mul_32 = [3,4,5;4,5,6];
                      mul_3 = cat(3,mul_31,mul_32); % 把a1a2按照“3”维连接

%%
% *字符串
        % 创建
              str0 = 'hello world';% 单引号引起
              str1 = 'I''m a student'; % 字符串中单引号写两遍
              str3 = ['I''m' 'a' 'student'];% 方括号链接多字符串
              str4 = strcat(str0, str1);% strcat连接字符串函数
              str5 = strvcat(str0, str1);% strvcat连接产生多行字符串
              str6 = double(str0);% 取str0的ASCII值，也可用abs函数
              str7 = char(str6);% 把ASCII转为字符串
        % 操作
              % 比较
                      strcmp(str0, str1);% 相等为1，不等为0
                      strncmp(str0, str1, 3);% 比较前3个是否相等(n)
                      strcmpi(str0, str1);% 忽略大小写比较(i)
                      strncmpi(str0, str1, 3); % 忽略大小写比较前3个是否相等
              % 查找替换
                      strfind(str0, str1);% 在str0找到str1的位置
                      strmatch(str1, str0);% 在str0字符串数组中找到str1开头的行数
                      strtok(str0); % 截取str0第一个分隔符（空格，tab，回车）前的部分
                      strrep(str0, str1, str2);% 在str0中用str2替换str1
              % 其他
                      upper(str0); % 转大写，lower转小写
                      strjust(str0, 'right');% 将str0右对齐，left左对齐，center中间对齐
                      strtrim(str0); % 删除str0开头结尾空格
                      eval(str0); % 将str0作为代码执行

%%
%转换
       % ___2___  -->  如num2str，将数字转字符串； dec2hex，将十进制转十六进制
       str_b = num2str(b);
       % abs，double取ASCII码；char把ASCII转字符串
        abs_str = abs('aAaA');